package com.cj.service;

import com.cj.pojo.User;
import com.cj.pojo.UserStatus;
import com.cj.pojo.PageBean;
import com.cj.pojo.dto.UserUpdateDTO;
import com.cj.pojo.dto.UserUpdateRequestDTO;

public interface UserService {
    // 用户登录验证
    User login(String username, String password);
    
    //根据用户名查询用户
    User findByUserName(String username);

    //注册
    void register(String username, String password);

    //更新
    void update(User user);
    
    void updateUserInfo(Long userId, UserUpdateDTO userUpdateDTO);
    void updateUserInfo(Integer userId, UserUpdateRequestDTO updateDTO);

    //更新头像
    void updateAvatar(String avatarUrl);

    //更新密码
    void updatePwd(String newPwd);

    //更新用户状态
    void updateStatus(Long id, UserStatus status);

    //更新用户角色
    void updateRole(Long id, String role);

    //获取用户列表
    PageBean<User> listUsers(Integer pageNum, Integer pageSize, UserStatus status, String role);
    
    //删除用户
    void deleteUser(Long id);
}
